
package com.woniuxy.service;

import java.math.BigDecimal;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.woniuxy.entity.Coach;
import com.woniuxy.entity.PageBean;
import com.woniuxy.entity.MyStudent;
import com.woniuxy.entity.Order;
import com.woniuxy.entity.PageBean;
import com.woniuxy.entity.Relationship;
import com.woniuxy.entity.Signing;
import com.woniuxy.entity.User;
import com.woniuxy.entity.Venue;

public interface CoachService {
	/*
	 * 查找所有的教练
	 */
	public List<Coach> findCoach();

	/*
	 * 注册时添加基本账户密码 返回1为成功，返回0为失败，返回2为账号已存在，返回3为手机号已存在
	 */
	public int addCoach(Coach coach);

	/**
	 * 通过教练id查询该教练
	 *
	 * @param cid
	 * @return
	 * @author 王敞
	 */
	public Coach findCoachByCid(int cid);

	/*
	 * 通过教练账号查询教练信息
	 */
	public Coach findCoachByCname(String cname);

	/*
	 * 通过手机号查询教练信息
	 */
	public Coach findCoachByPhoneNumber(String phone);

	/*
	 * 完善教练详情
	 */
	public int updateCoachInformation(Coach coach, int cid);

	/**
	 * 按条件查询教练
	 *
	 * @param condition
	 *            查询条件
	 * @return
	 */
	PageBean<Coach> findCoachByCondition(Coach condition, int page, int pageSize);

	/**
	 * 根据id查教练
	 * 
	 * @param cid
	 *            教练id
	 * @return 教练或null
	 */
	Coach findCoachById(int cid);

	// 修改完善地址
	public int updateAddressByCid(String address, int cid, BigDecimal longitude, BigDecimal latitude);

	// 添加我的学生
	public int addMyStudent(MyStudent myStudent);

	/*
	 * 查询是否是我的学生
	 */
	public int selectMyStudent(MyStudent myStudent);

	 //修改头像
    public int updateAvatarByCid(String avatar,int cid);
	/*
	 * 添加空闲时间
	 */
	public int addFreetimeByCid(int cid, String day, String when);

	/*
	 * 判断空闲时间是否存在
	 */
	public int isFreetimeByCid(int cid, String day, String when);

	// 添加银行卡
	public int insertBankCard(Coach coach);

	// 取现
	public int updateMoney(Coach coach);

	// 重置密码
	public int updatePwd(int cid, String pwd);

	// 分页获取所有的关注者信息 分页
	public PageBean<Relationship> getByPage(int page, int cid);

	// 添加关注
	public int addRelationship(Relationship relationship);

	// 根据教练id查看签约场馆 分页查询
	public PageBean<Signing> getVenueByPage(int page, int cid);

	// 根据教练id查看签约学员 分页查询
	public PageBean<Order> getUserByPage(int page, int cid);

	// 将信息表中签约邀请更改状态
	public int changeRmStatus(int sender, int target, int reply);

	// 查看a账号是否关注b账号 fan为关注者id,follow为被关注者
	public int judgeRelationship(int fan, int followed);

	// 分页获取好友
	public List<Integer> friendRelationship(int cid);


	// 根据姓名模糊查询教练账号信息
	public List<Coach> findCoachByName(String name);

	// 根据姓名模糊查询教练账号信息
	public List<Venue> findVenueByName(String name);

	// 根据姓名模糊查询教练账号信息
	public List<User> findUserByName(String name);


	/**
	 * 学生确认付款后教练获得报酬
	 * @param coach
	 * @return
	 * @author 王敞
	 */
	public int updateOrderMoneyByOrder(Coach coach );

}
